package com.itwlj.service;

import com.itwlj.dto.GoodsDTO;
import com.itwlj.dto.GoodsPageQueryDTO;
import com.itwlj.entity.Goods;
import com.itwlj.result.PageResult;
import com.itwlj.vo.GoodsDetailVO;

import java.util.List;

public interface GoodsService {

    /**
     * 新增商品
     *
     * @param goodsDTO
     */
    void insert(GoodsDTO goodsDTO);

    /**
     * 商品分页查询
     *
     * @param goodsPageQueryDTO
     * @return
     */
    PageResult pageQuery(GoodsPageQueryDTO goodsPageQueryDTO);

    /**
     * 商品批量删除
     *
     * @param ids
     */
    void deleteBatch(List<Long> ids);

    /**
     * 根据id修改商品
     *
     * @param goodsDTO
     */
    void update(GoodsDTO goodsDTO);

    /**
     * 商品起售停售
     *
     * @param status
     * @param id
     */
    void startOrStop(Integer status, Long id);

    /**
     * 根据子分类id查询商品
     *
     * @param subCategoryId
     * @return
     */
    List<Goods> getBySubCategoryId(Long subCategoryId);

    /**
     * 根据关键词搜索商品
     *
     * @param keyword
     * @return
     */
    List<Goods> search(String keyword);

    /**
     * 根据id查询商品
     *
     * @param id
     * @return
     */
    GoodsDetailVO getById(Long id);
}
